Recently, there has been great interest in so called "Virtual Reality" where a user navigates through and works in a multi-dimensional, typically a three dimensional, visual environment. In such systems, information is provided to the user so that the user visually perceives multi-dimensional information. When a user navigates through such a multi-dimensional synthetic environment, it has previously been difficult to locate the user's perspective within the environment in a way that the user can operate comfortably and efficiently. In a typical synthetic environment, several problems are encountered which relate to the difficulty in comfortably placing the user within the multi-dimensional environment so that the user feels comfortably a part of the environment and can understand the spacing and relationship of objects with respect to the user's perspective point.
It has been said that the purpose of "Virtual Reality" is to "break the screen" and place the user in the space with the information being visualized. Virtual reality further seeks to eliminate the computer as the apparent intermediary, and to permit humans to interact directly and naturally with the artificial environment. Enhancing a persons ability to rapidly find and understand the critical relationships contained in complex, multi-dimensional information is an important objective in the development of such programs.
The synthetic environmental systems heretofore developed have been somewhat difficult to navigate through and work in as such prior synthetic environments did not provide sufficient perceptual clues to ensure that the user will be able to comfortably ascertain the user's perspective point, distance and relative direction to perceived objects, and rate of movement of objects within the synthetic environment. While it is true that some synthetic environments provide a "dashboard" which provides the user with certain information through gauges and the like, and which suggests that the user's point of perspective originates at the base of the display, such dashboards cannot provide a sense of scale and perspective necessary to perceive distance as well as direction nor do systems utilizing such "dashboards" impart head motion parallax cues necessary to perceive the relative motion in the synthetic environment between the user and adjacent objects. Further, such systems have not allowed a user perspective and viewpoint which is directionally and positionally independent of user direction of movement. As used in this application, "user perspective" refers to the user's apparent direction of view within the synthetic environment while "user's point of perspective" or "viewpoint" refer to the point from which the user perspective originates, the apparent point from which the user views the synthetic environment.
Such prior synthetic environmental systems also create difficulties in the grasping and manipulation of objects in the synthetic environment. Because distance and movement are difficult to perceive in such prior systems, it has been heretofore difficult to grasp and manipulate objects within such synthetic environments. Such prior systems typically do not attempt to connect the system's grasping mechanism to the user's point of perspective. For example, some prior synthetic environments utilize a "floating hand" disconnected from the user's point of perspective, for grasping desired objects. Such a "floating hand" typically controlled by a data glove or the like is disconcerting to use as it does not appear connected to the user's point of perspective.
Over the last decade, the sophistication of scientific models and experiments have rapidly increased. As the complexity of such modelling increases, it becomes more difficult to extract and understand the information contained in such computational and experimental models. The analysis of experimental information may take months or even years to analyze and understand in many scientific fields. To simplify the analysis of such experimental information, it is accordingly desirable to produce more effective human-computer interfaces to significantly improve a persons ability to explore, interact with, perceive and understand computer based information.
Historically programming languages and operating systems were developed to help insulate the application programmer from the hardware details of the computer architecture. The use of such operating systems simplify the migration of application programs from one computer platform to another.
Developers of virtual, or synthetic environments, so called "Virtual Reality" encounter a wide variety of differing display devices such as head mounted stereoscopic displays, which optionally may be connected to a position and direction resolving boom support, flat screens or other forms of display. Similarly, synthetic environments may utilize a number of input devices such as data gloves, spaceballs, joy sticks, keyboards and the like. It has been heretofore necessary to develop a synthetic environment for particular input and output devices which can, of course vary, depending upon user applications and requirements. Such synthetic environmental systems must therefore be programmed to respond to and drive the particular inputs and outputs of an individual application.
The present invention overcomes the above-mentioned disadvantages of the known prior art systems. The present invention provides a user oriented synthetic environment interface which maps any selected input and output devices to a synthetic environment or application program using standard, device independent, generic functional commands or descriptors. Through the use of the multi-dimensional user oriented synthetic environment of the present application (known as MUSE), a synthetic environment or application program may be used with any desired set of input and output devices. Accordingly, the designer of the synthetic environment or applications program need not consider how a user moves around the model or issues commands. Instead the designer of a particular synthetic environment or application program need only describe the desired user input/output interfacing functions using standardized, device independent, functional commands. The system of the present application allows the user to select the mapping of such standardized functional commands to desired input and output devices to free the creator of these synthetic environment or application programs from the need to identify specific input/output devices, and further to allow the user to increase his/her rate of information absorption by mapping information transferred to/from the synthetic environment or application program through multiple perceptual channels.
The system of the present application further provides a craft surrounding the user's apparent position which craft may be moved independently of user perspective or viewpoint. The use of such a craft provides important visual clues to the user, enhancing the user's ability to perceive both distance and motion within the synthetic environment. The present application accordingly describes the development of a set of display elements, including a craft, which provide perceptual distance and relative motion clues to the user to make the user's navigation through the synthetic environment increasingly comfortable and effective.